The present invention relates to methods and systems for securely delivering electronic mail to hosts having dynamic IP addresses. More particularly, the present invention relates to methods and systems for securely delivering electronic mail to mail servers having dynamic IP addresses utilizing the Simple Mail Transfer Protocol (SMTP).
Hosts connected to a TCP/IP network communicate with each other using internet protocol (IP) addresses. An IP address is a number uniquely identifying a network connection. Available Internet IP addresses have become limited in number due to inefficient address assignment and an increase in the number of hosts connected to the Internet. As a result, Internet service providers (ISPs) may be unwilling to allocate static IP addresses to customers without charging substantial fees. A static or fixed IP address does not change for a given network connection. For example, each time a customer with a static IP address accesses the Internet through an ISP, the customer has the same IP address. Instead of allocating static IP addresses to customers, some ISPs allocate dynamic IP addresses. A dynamic IP address is temporarily assigned to a user, or, more specifically, to the network connection of a user""s machine. For example, when a customer accesses the Internet through an ISP, the customer may be given a dynamic IP address. When the customer terminates the connection with the ISP, the dynamic IP address may be assigned to another customer. When the first customer accesses the Internet a second time through the same ISP, he or she may or may not receive the same IP address used in the first connection. Thus, dynamic IP addresses allow owners of static IP addresses to maximize the value of each address by temporarily allocating the address to multiple customers.
SMTP is the dominant Internet standard for delivering electronic mail. SMTP allows mail for multiple users to be delivered to a single SMTP server. SMTP is an IP-based protocol. In order to deliver electronic mail, a delivering mail server retrieves the IP address of a receiving mail server. The SMTP protocol was designed to route mail to a server permanently connected to a network using a static IP address. Delivering mail to a mail server that randomly connects to a network with a dynamic IP address cannot be done securely using SMTP according to conventional mail delivery techniques. Alternatively, an SMTP server having a dynamic IP address cannot securely retrieve mail. For example, in order for a delivering SMTP server to determine where to deliver electronic mail, the delivering SMTP server determines the IP address of the receiving SMTP server. In order to determine the IP address of the receiving SMTP server, the delivering SMTP server may access a Domain Name System (DNS) server. A DNS server stores a database of resource records containing information relating to hosts, including IP addresses of the hosts.
Determining the IP address of the receiving SMTP server is a two step process. First, the delivering SMTP server queries the DNS server for the name of the receiving SMTP server. The query includes the domain name of the domain for which the receiving SMTP server receives mail. The DNS server searches its resource records for a mail exchange or MX record corresponding to the domain name in the query. An MX record specifies the name of a mail exchanger, i.e., the receiving SMTP server, responsible for receiving mail for a given domain. The DNS server sends an MX record specifying the name of the receiving SMTP server to the delivering SMTP server.
The next step is determining the IP address corresponding to the mail exchanger name specified in the MX record received by the delivering SMTP server. Accordingly, the delivering SMTP server queries the DNS server for the IP address corresponding to the name of the mail exchanger extracted from the MX record. The DNS server stores additional resource records, known as address or A records, that pair IP addresses with host names. Thus, if the DNS server stores the A record for the mail exchanger, the A record is transmitted to the delivering SMTP server, which can then initiate an SMTP connection to the IP address specified by the A record and deliver the mail. However, when the receiving SMTP server has a dynamic IP address, the DNS server may not have the A record for the receiving SMTP server because conventional DNS servers are not dynamically updated when a host receives a dynamic IP address. More particularly, no mechanism exists in the conventional Domain Name System for dynamically or automatically updating A records in a DNS server. Updating may be performed manually, for example, using a keyboard. However, such a process is time-consuming, labor-intensive, and unsuitable in a computing environment where dynamic IP addresses change frequently. Thus, conventional DNS servers may store A records containing static IP addresses only.
Since SMTP was originally designed to route mail between mail servers permanently connected to a network using fixed IP addresses, the fact that conventional DNS servers were not dynamically updatable was of little consequence. Conventional DNS servers stored the A records for the permanently connected mail servers. Mail delivery to the permanently connected mail servers was reasonably secure because delivering mail servers verified the addresses of receiving mail servers by accessing DNS servers before delivering mail. As long as the records stored in the DNS servers were secure, mail delivery occurred to the intended recipients.
However, in order to reduce network access fees, it has become desirable for a receiving mail server not to maintain a permanent connection to a network. For example, a receiving mail server may access a network periodically to retrieve mail queued by a delivering mail server. One conventional mechanism for receiving queued mail for a domain is the SMTP TURN command. In order to retrieve mail using the TURN command, the receiving mail server first establishes an SMTP connection with the delivering mail server. Next, the receiving mail server issues the TURN command followed by the domain name for which the receiving mail server receives mail. The delivering mail server then delivers queued mail for the domain name specified in the TURN command without verifying the IP address of the receiving mail server. The SMTP connection initiated by the receiving mail server is essentially reversed and used by the delivering mail server to deliver mail. The TURN command is not secure because a user can initiate an SMTP connection, issue the TURN command, and retrieve mail for a domain for which he or she is not authorized to retrieve mail.
Because of the security problems associated with the TURN command, the SMTP ETRN command was developed as a more secure method for retrieving queued mail. In order to utilize the ETRN command to retrieve mail, the receiving mail server first initiates an SMTP connection with the delivering mail server. Next, the receiving mail server issues the ETRN command followed by the domain name for which mail delivery is requested. In response to the ETRN command, the delivering mail server queries a DNS server for the mail exchanger and then for the IP address of the mail exchanger. Because the delivering mail server queries the DNS server to determine where to deliver mail, mail retrieval using the ETRN command is more secure than mail retrieval using the TURN command. However, if the receiving mail server has a dynamic IP address, the DNS server may not store the A record for the receiving mail server. As a result, the IP address cannot be determined and mail retrieval using the ETRN command fails. An alternative is to use the TURN command, which is not secure. Thus, according to conventional delivery techniques, electronic mail could not be securely delivered to an SMTP server having a dynamic IP address.
As used herein, the term xe2x80x9cserverxe2x80x9d refers to a program executing on a machine, such as a computer, and providing shared services to client processes on a network. The computer may include a memory device that stores the server and a processor that executes the server. The computer may also include one or more network adapters, such as Ethernet adapters, that allow the server to communicate with other servers executing on other machines. Alternatively, multiple servers may execute on the same physical machine. However, a server, as described herein, is not intended to be limited to use with or by any particular hardware configuration. In addition, the term xe2x80x9cserverxe2x80x9d is not intended to be limited to a program that always provides services to clients. For example, in some communications, servers may act as clients or peers of other network processes.
In addition, the phrase xe2x80x9cdelivering mail serverxe2x80x9d refers to a program that stores and delivers mail to a receiving mail server. The phrase xe2x80x9creceiving mail serverxe2x80x9d refers to a program that requests delivery of queued mail from the delivering mail server. However, neither of these phrases is intended to be limited to a mail server that only delivers or only receives mail. For example, the receiving mail server may deliver mail, and the delivering mail server may receive mail. Thus, the terms xe2x80x9cdeliveringxe2x80x9d and xe2x80x9creceivingxe2x80x9d are intended to describe the functions of the mail servers with regard to a given transaction.
As used herein, the phrase, xe2x80x9creceiving mail server codexe2x80x9d refers to any string or grouping of alphanumeric characters, digits, and/or symbols preferably arranged so that the receiving mail server code is difficult to determine. The receiving mail server code is utilized to securely deliver electronic mail to a receiving mail server, as described in more detail below.
According to one aspect, the present invention includes one or more name servers in communication with a delivering mail server to securely communicate the dynamic IP address of receiving mail servers to the delivering mail server. A first name server hereinafter referred to as xe2x80x9cthe dynamic name serverxe2x80x9d dynamically stores records linking receiving mail server codes of receiving mail servers with dynamic IP addresses of receiving mail servers. A second name server hereinafter referred to as xe2x80x9cthe private name serverxe2x80x9d stores records linking the receiving mail server codes with domain names for which the receiving mail servers receive mail. As used herein, the phrase xe2x80x9cdynamic name serverxe2x80x9d refers to any server capable automatically registering records linking receiving mail server codes and dynamic IP addresses of receiving mail servers in response to registration requests received over a network. The phrase xe2x80x9cprivate name serverxe2x80x9d refers to any name server capable of storing records linking receiving mail server codes to domain names for the receiving mail servers, wherein access to the records is preferably limited, e.g., to a delivering mail server, in order to protect the stored receiving mail server codes. A third name server, hereinafter referred to as, xe2x80x9cthe public name serverxe2x80x9d may be used by other mail servers to route mail to the delivering mail server. As used herein, the phrase xe2x80x9cpublic name serverxe2x80x9d refers to any server that stores records linking domain names mail exchanger names and records linking mail exchanger names to IP addresses, wherein the records are freely accessible to network users. The public name server is not essential to the invention but is nonetheless mentioned for completeness.
According to another aspect, the present invention includes a setup phase, a connection phase, and a mail delivery phase. The setup phase may occur when a new receiving mail server and the domain(s) for which it receives mail are added to a network. The setup phase may include generating a receiving mail server code for the receiving mail server and linking the receiving mail server code with the domain name corresponding to the domain for which the receiving mail, server receives mail. The receiving mail server code and the domain name are preferably registered with a private name server. The receiving mail server code and the domain name are preferably also registered with the receiving mail server.
Next, during the connection phase, the receiving mail server connects to the network and receives a dynamic IP address. During the connection phase, the receiving mail server preferably registers its IP address along with its receiving mail server code with a dynamic name server. The connection phase may occur each time a receiving mail server connects to the network and receives a dynamic IP address.
Next, during the mail retrieval phase, the receiving mail server requests delivery of queued mail from the delivering mail server. The delivering mail server first retrieves the receiving mail server code corresponding to the domain or domains for which the receiving mail server receives mail from the private name server. The delivering mail server then requests the dynamic IP address from the private name server. The private name server determines that it does not have the record containing the IP address, so the private name server queries the dynamic name server for the dynamic IP address. The dynamic name server transmits the dynamic IP address to the private name server. The private name server transmits the dynamic IP address to the delivering mail server. The delivering mail server then creates an SMTP connection to the IP address received from the private name server and then delivers the mail. The mail delivery phase may occur each time the delivering mail server requests delivery of queued mail after connecting to the network and receiving a dynamic IP address.
According to another aspect, the present invention includes a method for securely delivering electronic mail to a receiving mail server having a dynamic IP address. The method includes registering a dynamic IP address and a code of a receiving mail server to which electronic mail is to be delivered in a dynamic name server. In order to retrieve electronic mail, after the registration, the receiving mail server may transmit a request for delivery of electronic mail to a delivering mail server. The delivering mail server may be a remote mail server storing queued messages for the receiving mail server. In order to determine where to deliver the queued mail, the delivering mail server may transmit a request for the dynamic IP address of the receiving mail server to a private name server, such as a DNS server. The private name server may store a database of resource records linking receiving mail server codes with domain names for a plurality of receiving mail servers. However, since the dynamic IP address of the receiving mail server may not be stored in the private name server, the private name server may transmit a request for determining the dynamic IP address to the dynamic name server. The request may include the receiving mail server code. The dynamic name server may extract the dynamic IP address based on the receiving mail server code. The dynamic IP address may then be transmitted to the delivering mail server. The delivering mail server may then deliver the mail to the receiving mail server utilizing the dynamic IP address transmitted from the private name server.
According to another aspect, the present invention may include a system for securely delivering electronic mail to electronic mail servers having dynamic IP addresses. In the system, a delivering mail server receives requests for electronic mail delivery from a plurality of receiving mail servers having dynamic IP addresses via a network. The delivering mail server delivers electronic mail to the plurality of receiving mail servers. A dynamic name server receives and stores receiving mail server codes and corresponding dynamic IP addresses of the receiving mail servers, e.g., during the connection phase when the receiving mail servers are allocated dynamic IP addresses. A private name server may be in communication with the dynamic name server and the delivering mail server for storing the receiving mail server codes and corresponding domain names of the plurality of receiving mail servers. The private name server may access the dynamic name server to determine dynamic IP addresses of the plurality of receiving mail servers.
According to another aspect, the present invention includes a method for securely communicating a dynamic IP address of a receiving mail server to a delivering mail server. The method includes registering a dynamic IP address and a receiving mail server code of a receiving mail server with a dynamic name server. Registering the dynamic IP address may include transmitting a name registration request packet, including the dynamic IP address and the receiving mail server code, from the receiving mail server to the dynamic name server. The receiving mail server code may also be stored with the domain name of the receiving mail server in a private name server in communication with the dynamic name server. In response to a request for the dynamic IP address of the receiving mail server from a delivering mail server, the private name server may extract the receiving mail server code from its records. The private name server may then transmit a request for the dynamic IP address to the dynamic name server. The request may include the receiving mail server code. The dynamic name server, having previously registered the dynamic IP address with the receiving mail server code, extracts the dynamic IP address from its records. The dynamic IP address is then transmitted to the delivering mail server. Transmitting the dynamic IP address to the delivering mail server may include first transmitting the dynamic IP address to the private name server. The private name server may then transmit the dynamic IP address to the delivering mail server.
According to another aspect, the present invention may include a computer-readable medium having computer-executable instructions for performing steps for retrieving mail from a mail server. The steps may include identifying a routeable dynamic IP address received from a network. Next, a receiving mail server code previously stored with the receiving mail server, e.g., during the setup phase, may be retrieved and linked with the dynamic IP address. If the receiving mail server code is encrypted, it is preferably decrypted before being linked with the dynamic IP address. Next, the receiving mail server code and the dynamic IP address may be registered with a dynamic name server. The receiving mail server may then request and receive mail securely.
According to another aspect, the present invention may include a computer-readable medium having stored thereon a data structure. The data structure may include an A record. The A record may include a first data field containing data representing a secret receiving mail server code of a receiving mail server and a second data field containing data representing a dynamic IP address of the receiving mail server.
According to another aspect, the present invention may include a computer-readable medium having stored thereon a data structure. The data structure may include an MX record. The MX record may include a first data field containing data representing a secret receiving mail server code of a receiving mail server and a second data field containing data representing a domain name of a domain for which the receiving mail server receives mail.